package ams

import "lib/structs/base"

type SearchAssetDto struct {
	AssetCode string `json:"assetCode"`
	LabelCode string `json:"labelCode"`
	Name      string `json:"name"`
	base.Page
}

type AddAssetDto struct {
	AssetCode   string `json:"assetCode"`         // 资产编号
	LabelType   string `json:"labelType"`         // 标签类型，默认 RFID
	LabelCode   string `json:"labelCode"`         // 标签编码
	TypeId      int64  `json:"typeId,string"`     // 资产类型,可选：有形资产、无形资产、耗材
	Name        string `json:"name"`              //名称
	CategoryId  int64  `json:"categoryId,string"` // 分类ID
	Tag         string `json:"tag"`               // 标签，可以有多个
	Description string `json:"description"`       //描述
}

type AssetCategoryNode struct {
	Value       int64               `json:"value,string"`
	Label       string              `json:"label"`           // 名称
	Description string              `json:"description"`     // 描述
	ParentId    int64               `json:"parentId,string"` //父id
	Children    []AssetCategoryNode `json:"children"`        // 子节点
}

type AssetDto struct {
	Id           int64   `json:"id,string"`
	AssetCode    string  `json:"assetCode"`     // 资产编号
	LabelType    string  `json:"labelType"`     // 标签类型，默认 RFID
	LabelCode    string  `json:"labelCode"`     // 标签编码
	Name         string  `json:"name"`          //名称
	TypeId       int64   `json:"typeId,string"` // 资产类型,可选：有形资产、无形资产、耗材
	TypeName     string  `json:"typeName"`
	CategoryId   int64   `json:"categoryId,string"` // 分类ID
	CategoryName string  `json:"categoryName"`
	Tag          string  `json:"tag"`                 // 标签，可以有多个
	Description  string  `json:"description"`         //描述
	Price        float64 `json:"price"`               // 采购价格
	BuyAt        int64   `json:"buyAt,string"`        // 采购时间
	ExpirationAt int64   `json:"expirationAt,string"` // 到期时间
	Num          int64   `json:"num,string"`
}

// SearchAssetConsDto 耗材查询
type SearchAssetConsDto struct {
	AssetId       int64  `form:"assetId,string"`
	OperationType string `form:"operationType"` //操作类型，in-入库，out-出库，cover-强制覆盖数量（先不做）
	Applicant     string `form:"applicant"`     // 领用人
	base.Page
}

// AssetConsLogsDto 耗材进出日志结构体
type AssetConsLogsDto struct {
	Id            int64  `json:"id,string" gorm:"primaryKey;comment:' 消耗品入库和领用单据日志'"`
	AssetId       int64  `json:"assetId,string"`
	OperationType string `json:"operationType"`   //操作类型，in-入库，out-出库，cover-强制覆盖数量（先不做）
	Num           int64  `json:"num,string"`      // 数量
	Unit          string `json:"unit"`            // 单位
	Applicant     string `json:"applicant"`       // 领用人
	Operator      string `json:"operator"`        // 经办人
	Admin         string `json:"admin"`           // 管理员
	CreateAt      int64  `json:"createAt,string"` // 时间
	OrderCode     string `json:"orderCode"`       // 单据编号
	Notes         string `json:"notes"`           // 备注信息
	Picture       string `json:"picture"`         // 单据图片
	AssetName     string `json:"assetName"`       // 名称
	AssetDesc     string `json:"assetDesc"`       // 描述
}

// AssetConsListDto 资产耗材列表dto
type AssetConsListDto struct {
	AssetId     int64  `json:"assetId,string"`
	Name        string `json:"name"`
	Description string `json:"description"`
	Num         int64  `json:"num,string"`
	Label       string `json:"label"`
	Value       string `json:"value"`
}
